//==============================================================================
// CompBioTools.hh
//
//
//------------------------------------------------------------------------------
// $Id: CompBioTools.hh,v 1.1 2000/03/31 19:29:35 kdurbin Exp kdurbin $
//------------------------------------------------------------------------------
// $Log: CompBioTools.hh,v $
// Revision 1.1  2000/03/31 19:29:35  kdurbin
// Initial revision
//
//
//==============================================================================
//.......1.........2.........3.........4.........5.........6.........7.........8
//
//

//---------------------------------------------------------------
//
// This is just a list of examples for doxygen to index.

/*! \example BLAST.example.cc */
/*! \example table.example.cc */
/*! \example alignment.match.example.cc */
/*! \example exact.match.example.cc */
/*! \example getoption-logstream-example.cc */
/*! \example regex.example.cc */


#ifndef COMPBIOTOOLS_INC
#define COMPBIOTOOLS_INC



// ----------------------------------------------------------------------------
// * CompBioTools
// ----------------------------------------------------------------------------
// Convenience file that includes all of the headers for the CompBioTools 
// library.  Also provides a quick overview of the components of each library. 

// Localized version of STL
#include "LocalSTL.hh"


// Some work-arounds for specific classes. 

// Used by RandomNumberGenerator 
typedef long local_time_type;

// Stop-gap bug work around.
typedef vector<string> stringVec;   

// Generic (not biology specific) utilitiy functions implemented as free
// standing functions (not in a class). 
//
#include "ParseUtils.hh"            // Utilities for parsing text
#include "PrintUtils.hh"            // Utilities for printing formatted text
#include "FileUtils.hh"             // Utilities for working with files. 
#include "MiscUtils.hh"             // Time and other utilities. 
#include "CLibraryAdditions.hh"     // Functions that mirror C library functions

// Some minor convenience classes wrapping common HashMaps (e.g. String2IntMap)
#include "HashUtils.hh"

// Generic (not biology specific) utility functions implemented as a class. 
//


// KJD Eventually I need to compile boost to work with forte64, but for now
// just won't use regex support with 64-bit apps. 
#ifndef FORTE64
#ifndef _STLP_DEBUG
#ifndef _STLP
//#include <boost/regex.hpp>                // Regex libraries.  boost/regex.hpp
//using namespace boost;
#include "LogStream.hh"             // Stream with logging levels
//#include "Scaffold.hh"              // Parses Ray's scaffolder output. 
//#include "ScaffoldGraph.hh"           // Parses Ray's scaffolder graph output. 
#endif 
#endif 
#endif 

#include "GetOption.hh"             // Command line option parser
//#include "Table.hh"                 // Dynamically allocated 2D table of objs.
#include "RandomNumberGenerator.hh" // Better random number generation.

// Basic sequence class
#include "Sequence.hh"              // Basic representation for sequences. 

// File parsers
#include "FASTAFile.hh"             // FASTA format file parser. 
#include "EXPFile.hh"               // EXP format file parser. 
//#include "BLASTWrapper.hh"          // BLAST wrapper and parser. 
#include "GenBankEntry.hh"          // GenBankEntry parser.
#include "AceFile.hh"               // Parses the new Ace format file. 
#include "Crossmatch.hh"            // Parses the output of crossmatch


// Fundamental algorithms on sequences
//#include "SequenceAlignment.hh"     // Several varities of gapped alignment.
//#include "SuffixTree.hh"            // FAST exact sequence matching. 
//#include "HiddenMarkovModel.hh"                   // Hidden Markov Models
#include "ReadingFrame.hh"          // Parsing reading frames. 

// Non-sequence specific data structures/algorithms
//#include "Table.hh"                 // Generic 2D table of objects
//#include "GraphTable.hh"            // Algorithms on adjacency matrix graph
//#include "AdjacencyListGraph.hh"    // Manipulations of a sparse graph.

// Support classes
#include "SearchResult.hh"          // Sequence search results vector/tools.


// These aren't used so much any more, and the Intel compiler has 
// issues with them, so omit for now. 
//#include "SequenceHash.hh"
//#include "HashSampleSearchEngine.hh"


// Specialized code for particular applications (often 
// more hackish than other code)
//#include "ShotgunSimulator.hh"      // Simulate shotgun read generation 
//#include "SamplingOverlapper.hh"        // Class to estimate overlaps between reads
//#include "WgsSimulator.hh"


// Depreciated.  Use SamplingOverlapper instead.
//#include "SampleAnalysisTable.hh"   // Table used in analyzing seq samples
//#include "SampleAnalyzer.hh"        // Class to analyze random sequence samples


#endif
